﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cinch;
using System.ComponentModel;

namespace Anata.Client
{
    /// <summary>
    /// </summary>
    public class TransaksiPembayaranThumbnailViewModel : ViewModelBase
    {
        #region Data
        //private ViewMode currentViewMode = ViewMode.AddMode;

		#region Data.Primitives
        private Int32 idTransaksiPembayaran;
        private Int32? idTransaksi;
        private Int32? idJenisPembayaran;
        private String namaJenisPembayaran;
        private Int32 nominalPembayaran;
		#endregion

        //private IEnumerable<DataWrapperBase> cachedListOfDataWrappers;

        #region Data.Rules
		#endregion

		#region Data.VMs
		#endregion

		#region Data.Services
		#endregion
        #endregion

        #region Constructor
        public TransaksiPembayaranThumbnailViewModel()
        {
			#region Constructor.SetupServices
			#endregion

			#region Constructor.SetupCommands
			#endregion

            #region Constructor.SetupDataWrappers
            #endregion

            //fetch list of all DataWrappers, so they can be used again later without the
            //need for reflection
            //cachedListOfDataWrappers =
            //    DataWrapperHelper.GetWrapperProperties<TransaksiPembayaranThumbnailViewModel>(this);

            #region Constructor.SetupValidationRules
            #endregion
			
			#region Constructor.SetupVMs
			#endregion
        }
        #endregion

        #region Static
        #endregion

        #region Public Properties
		#region Public.Commands
		#endregion

		#region Public.ViewMode
		#endregion
        
		#region Public.Data
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs idTransaksiPembayaranChangeArgs =
            ObservableHelper.CreateArgs<TransaksiPembayaranThumbnailViewModel>(x => x.IdTransaksiPembayaran);
        public Int32 IdTransaksiPembayaran
        {
            get { return idTransaksiPembayaran; }
            set
            {
                idTransaksiPembayaran = value;
                NotifyPropertyChanged(idTransaksiPembayaranChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs idTransaksiChangeArgs =
            ObservableHelper.CreateArgs<TransaksiPembayaranThumbnailViewModel>(x => x.IdTransaksi);
        public Int32? IdTransaksi
        {
            get { return idTransaksi; }
            set
            {
                idTransaksi = value;
                NotifyPropertyChanged(idTransaksiChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs idJenisPembayaranChangeArgs =
            ObservableHelper.CreateArgs<TransaksiPembayaranThumbnailViewModel>(x => x.IdJenisPembayaran);
        public Int32? IdJenisPembayaran
        {
            get { return idJenisPembayaran; }
            set
            {
                idJenisPembayaran = value;
                NotifyPropertyChanged(idJenisPembayaranChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs namaJenisPembayaranChangeArgs =
            ObservableHelper.CreateArgs<TransaksiPembayaranThumbnailViewModel>(x => x.NamaJenisPembayaran);
        public String NamaJenisPembayaran
        {
            get { return namaJenisPembayaran; }
            set
            {
                namaJenisPembayaran = value;
                NotifyPropertyChanged(namaJenisPembayaranChangeArgs);
            }
        }
        /// <summary>
        /// </summary>
        static PropertyChangedEventArgs nominalPembayaranChangeArgs =
            ObservableHelper.CreateArgs<TransaksiPembayaranThumbnailViewModel>(x => x.NominalPembayaran);
        public Int32 NominalPembayaran
        {
            get { return nominalPembayaran; }
            set
            {
                nominalPembayaran = value;
                NotifyPropertyChanged(nominalPembayaranChangeArgs);
            }
        }
        #endregion

        #region Public.CachedCollection
        #endregion

		#region Public.DataVMs
		#endregion

        #endregion

        #region Command Handlers
        #endregion

        #region Change Callbacks
        #endregion

        #region Private Methods
        #endregion

        #region Overrides
        public override string ToString()
        {
            return String.Format("TransaksiViewModel {0}", this.idTransaksi);
        }
        #endregion

        #region EditableValidatingViewModelBase overrides
        #endregion
    }
}
